﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Input;
using produccion.AccesoDatos;
using Microsoft.Windows.Controls;
using System.ComponentModel;
using System.Windows.Controls;
using System.Windows.Data;

namespace produccion.vistamodelo
{
    class VMprueba : ObservableObject
    {


        private VMgridBuscar _gb;
        public VMgridBuscar gb {
            get { return _gb; }
            set { _gb = value;
            base.OnPropertyChanged("gb");
            }
        
        }



        private ObservableCollection<boton> _lista = new ObservableCollection<boton>() { new boton { nombre = "A",nombre2="H" }, new boton { nombre = "B",nombre2="R" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" } };
        public ObservableCollection<boton> lista
        {
            get { return _lista; }
            set
            {
                _lista = value;
                RaisePropertyChangedEvent("lista");
            }
        }

        private boton _selBoton = new boton();
        public boton selBoton
        {
            get { return _selBoton; }
            set
            {
                _selBoton = value;
                RaisePropertyChangedEvent("selBoton");
            }
        }

        public class boton : ObservableObject
        {

            private string _nombre;
            public string nombre
            {

                get { return _nombre; }
                set
                {
                    _nombre = value;
                    RaisePropertyChangedEvent("nombre");
                }
            }

            private string _nombre2;
            public string nombre2
            {

                get { return _nombre2; }
                set
                {
                    _nombre2 = value;
                    RaisePropertyChangedEvent("nombre2");
                }
            }
        }

        RelayCommand _cmdConsultar;
        public ICommand cmdConsultar
        {
            get
            {
                if (_cmdConsultar == null)
                {
                    _cmdConsultar = new RelayCommand(Consultar);
                }
                return _cmdConsultar;
            }
        }


        public void Consultar(object parameter)
        {
            try
            {
                Window a = (Window)parameter;
                a.Close();
                // ProcesoProduccionRepositorio rep = new ProcesoProduccionRepositorio();
                //MessageBox.Show(parameter.ToString());

            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

        }


        RelayCommand _cmdBuscar;
        public ICommand cmdBuscar
        {
            get
            {
                if (_cmdBuscar == null)
                {
                    _cmdBuscar = new RelayCommand(Buscar);
                }
                return _cmdBuscar;
            }
        }


        public void Buscar(object parametro)
        {
            try
            {
              

                int a = Convert.ToInt32(parametro);

                if (a == 0)
                {

                   
           

                    MessageBox.Show("Buscar F2 "+selBoton.nombre);
                }
                // ProcesoProduccionRepositorio rep = new ProcesoProduccionRepositorio();
                //MessageBox.Show(parameter.ToString());

            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

        }


        public VMprueba(){

            _lista = new ObservableCollection<boton>() { new boton { nombre = "Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", nombre2 = "H" }, new boton { nombre = "B", nombre2 = "R" }, new boton { nombre = "C",nombre2="A" }, new boton { nombre = "C",nombre2="B" }, new boton { nombre = "C",nombre2="C" }, new boton { nombre = "C",nombre2="A" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" }, new boton { nombre = "C" } };
            gb = new VMgridBuscar((from cust in _lista select new VMlistaGenerica { strColumna1 = cust.nombre,strColumna2=cust.nombre2,strColumna3=cust.nombre,strColumna4=cust.nombre,strColumna5=cust.nombre}).ToList());
            gb.PropertyChanged += OnSelListaPropertyChanged;
            gb.columna1.strNombre = "Nombres";
            gb.columna2.strNombre = "Apellidos";
            gb.columna3.strNombre = "Apellidos";
            gb.strTitulo = "Grid de prueba";


            Botones = new ListCollectionView(_lista);
            Botones.CurrentChanged += new EventHandler(SelectedItemChanged);

          // lista.CollectionChanged

        }


        void OnSelListaPropertyChanged(object sender, PropertyChangedEventArgs e)
        {

            if (e.PropertyName == "Click")
                MessageBox.Show(gb.selLista.strColumna2);

            if (e.PropertyName == "selLista")
                MessageBox.Show(gb.selLista.strColumna1);
        }


     public ICollectionView Botones { get; private set; }

     private void SelectedItemChanged( object sender, EventArgs e )
    {
        //Customer current = Customers.CurrentItem as Customer;
        MessageBox.Show("Cambio");
    }

    }
}







